From 36861cf6088442bfe438be6b48a1b19c85c61a01 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 20 Jul 2009 22:30:48 +0200 Subject: [PATCH] Make gdk_drawable_get_visible/clip_region handle the !viewable case We can't access ->clip_region for these cases as its not yet calculated. --- gdk/gdkwindow.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index a3718bb2fc..9ceb5d1361 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -3493,13 +3493,24 @@ gdk_window_get_composite_drawable (GdkDrawable *drawable, return tmp_pixmap; } +static GdkRegion* +gdk_window_get_visible_region (GdkDrawable *drawable) +{ + GdkWindowObject *private = (GdkWindowObject*) drawable; + + if (private->viewable) + return gdk_region_copy (private->clip_region); + else + return gdk_region_new (); +} + static GdkRegion* gdk_window_get_clip_region (GdkDrawable *drawable) { GdkWindowObject *private = (GdkWindowObject *)drawable; GdkRegion *result; - result = gdk_region_copy (private->clip_region); + result = gdk_window_get_visible_region (drawable); if (private->paint_stack) { @@ -3522,14 +3533,6 @@ gdk_window_get_clip_region (GdkDrawable *drawable) return result; } -static GdkRegion* -gdk_window_get_visible_region (GdkDrawable *drawable) -{ - GdkWindowObject *private = (GdkWindowObject*) drawable; - - return gdk_region_copy (private->clip_region); -} - static void gdk_window_draw_drawable (GdkDrawable *drawable, GdkGC *gc, -- 2.30.2